package yy.hh;

import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.service.IoHandler;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.nio.NioSocketConnector;

public class client {
	public static void main(String[] args){
	      if(args.length<1){
	            System.out.println("usage: client.MinaClient IP.Maybe you forgot  argument( server's IP)");
	            System.exit(0);
	        }
	        System.out.println(args[0]+"================");
	        if(!isIP (args[0])){
	            System.out.println("IP address is not right.Please check it!!");
	            System.exit(0);
	        }

	        System.out.println("=======CLIENT:===============");
	        IoConnector connector=new NioSocketConnector();
	        connector.setConnectTimeoutMillis(36*1000);
	        connector.getFilterChain().addLast("codec",
	                new ProtocolCodecFilter(
	                        new TextLineCodecFactory(
	                                Charset.forName("UTF-8")  )
	                )
	        );


	        connector.setHandler((IoHandler) new MyClientHandler("hi,server.   I connected you..^_^\n "));

	        connector.connect(new InetSocketAddress(args[0].trim(), 6666));

	    }


	    private static boolean isIP(String ip){
	        String regUrl = "((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))";
	        Pattern p = Pattern.compile(regUrl, Pattern.CASE_INSENSITIVE);
	        Matcher m = p.matcher(ip);
	        return m.find();

	    }


	

	}
	



